package org.zjx.command.entity.screen;

import lombok.AllArgsConstructor;
import lombok.Data;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Data
public class Scene {
    public final String name;
    public final TabMap tabMap;
    public final List<Npc> npcs = new ArrayList<>();
    public final List<Room> rooms = new ArrayList<>();
    public final List<Teleport> teleports = new ArrayList<>();
    public final List<String> monsters = new ArrayList<>();
    public final Map<String, Object> properties = new HashMap<>();

    public Scene(String name, TabMap tabMap) {
        this.name = name;
        this.tabMap = tabMap;
    }

    public Scene addNpc(Npc npc) {
        npcs.add(npc);
        return this;
    }

    public Scene addRoom(Room room) {
        rooms.add(room);
        return this;
    }

    public Scene addTeleport(Teleport teleport) {
        teleports.add(teleport);
        return this;
    }

    public Scene addMonster(String monster) {
        monsters.add(monster);
        return this;
    }
}
